
class Foo {

  // 静态属性
  static sBar = '父类静态属性sBar'
  // 私有属性
  #name = '父类私有属性#name'
  // 普通属性
  sex = '父类普通属性sex'

  // 获取器
  get name (){
    return this.#name
  }

  // 存储器
  set name (value){
      this.#name = value
  }


  // 静态方法bar
  static bar() {
    // 静态方法bar调用了this.baz，这里的this指的是Foo类，而不是Foo的实例，
    this.baz();
  }
  // 静态方法baz
  static baz() {
    console.log('父类的静态方法：baz');
  }
  // 普通方法baz
  baz() {
    console.log('父类：world#######'+this.#name);
  }
 // 普通方法bazf00
  bazf00() {
    // 谁调用就是谁
    this.baz()
  }
}


class Shuiguo2 extends Foo{}

let sg2 = new Shuiguo2()
// 调用父类的获取器
console.log(sg2.name); //结果： 父类私有属性#name
// 调用父类的存储器
sg2.name = '修改：父类普通属性sex'
// 调用父类的普通属性
console.log(sg2.sex); //结果： 父类普通属性sex
// 调用父类的普通方法
sg2.bazf00() //结果：父类：world#######父类私有属性#name
// 调用父类的静态方法
Shuiguo2.bar() //结果：父类的静态方法：baz
// 调用父类的静态属性
console.log(Shuiguo2.sBar); //结果：父类静态属性sBar
